Macro হলো Assembly Language-এ এমন একটি কৌশল যা প্রোগ্রামারদের কোড পুনরায় ব্যবহারযোগ্য এবং সহজভাবে লেখার সুযোগ দেয়। একটি ম্যাক্রো হলো নির্দেশনাসমূহের একটি ব্লক যা একবার সংজ্ঞায়িত করে প্রোগ্রামের বিভিন্ন স্থানে ব্যবহার করা যায়। Macro Definition হলো ম্যাক্রোর সংজ্ঞা এবং Macro Expansion হলো সেই ম্যাক্রো যখন প্রোগ্রামে ব্যবহার করা হয়, তখন তার সম্পূর্ণ কোড স্থাপন করা।
Macro Definition (ম্যাক্রো সংজ্ঞা):
- ম্যাক্রো সংজ্ঞা একটি নাম এবং নির্দেশনাসমূহের একটি সেট নিয়ে গঠিত।
- ম্যাক্রো সংজ্ঞা
MACROকীওয়ার্ড দিয়ে শুরু হয় এবংENDMকীওয়ার্ড দিয়ে শেষ হয়। - ম্যাক্রোতে প্যারামিটার ব্যবহার করা যেতে পারে, যা কোড লেখাকে আরও গতিশীল করে তোলে।
ম্যাক্রো সংজ্ঞার উদাহরণ:
print_msg MACRO msg
MOV DX, msg ; মেসেজের ঠিকানা DX রেজিস্টারে লোড করা
MOV AH, 09h ; ডিসপ্লে ফাংশন কল করার জন্য
INT 21h ; DOS interrupt কল করা
ENDMব্যাখ্যা:
print_msgনামে একটি ম্যাক্রো সংজ্ঞায়িত করা হয়েছে, যা একটি স্ট্রিং প্রদর্শনের জন্য ব্যবহৃত হবে।
Macro Expansion (ম্যাক্রো বিস্তার):
- Macro Expansion তখন ঘটে যখন প্রোগ্রামের মধ্যে ম্যাক্রো কল করা হয়। অ্যাসেম্বলার ম্যাক্রো কলের স্থানে সংজ্ঞায়িত কোডটি প্রতিস্থাপন করে।
- এটি প্রোগ্রাম লেখা দ্রুত করে এবং কোড পুনরাবৃত্তি হ্রাস করে।
ম্যাক্রো বিস্তারের উদাহরণ:
section .data
msg db 'Hello, World!', '$'
section .text
global _start
_start:
print_msg msg ; ম্যাক্রো কল যা প্রোগ্রামের মধ্যে বিস্তার করবে
MOV AH, 4Ch ; প্রোগ্রাম শেষের জন্য DOS interrupt কল করা
INT 21hবিস্তার কীভাবে কাজ করে:
- যখন
print_msg msgম্যাক্রো কল করা হয়, অ্যাসেম্বলার সেই কলের স্থানেMOV DX, msg,MOV AH, 09h, এবংINT 21hকোড প্রতিস্থাপন করে। এটি এমন মনে হয় যেন সেই কোড সরাসরি লিখিত হয়েছিল।
Macro Definition এবং Macro Expansion এর সুবিধা:
কোড পুনঃব্যবহার:
- ম্যাক্রো ব্যবহার করে প্রোগ্রামের বিভিন্ন স্থানে একই কোড পুনরায় লিখতে হয় না। এটি কোডের পুনঃব্যবহার নিশ্চিত করে।
কোডের সংক্ষিপ্ততা:
- কোডকে সংক্ষিপ্ত এবং পাঠযোগ্য করে তোলে। একবার সংজ্ঞায়িত ম্যাক্রো যেকোনো স্থানে সহজেই ব্যবহার করা যায়।
কোডের গঠন:
- ম্যাক্রো ব্যবহার করলে কোডের গঠন এবং পরিষ্কারতা বৃদ্ধি পায়। প্রোগ্রামাররা জটিল কোড সহজে লিখতে এবং পড়তে পারেন।
Macro Definition এবং Macro Expansion এর অসুবিধা:
বিস্তৃত কোড সাইজ:
- অনেক ম্যাক্রো ব্যবহার করলে প্রোগ্রাম ফাইলের আকার বড় হতে পারে, কারণ ম্যাক্রো প্রতিটি ব্যবহারের সময় সম্পূর্ণ কোড প্রতিস্থাপন হয়।
ডিবাগিং জটিলতা:
- ম্যাক্রোতে ভুল থাকলে ডিবাগিং কিছুটা কঠিন হতে পারে, কারণ ম্যাক্রো বিস্তারের ফলে কোডটি দীর্ঘ হয় এবং ত্রুটি খুঁজে বের করা সময়সাপেক্ষ হতে পারে।
সারসংক্ষেপ
Macro Definition হলো ম্যাক্রো সংজ্ঞার মাধ্যমে প্রোগ্রামিং সহজ করার উপায়, যেখানে বারবার ব্যবহারযোগ্য কোড একটি নামে সংরক্ষিত হয়। Macro Expansion হলো সেই সংজ্ঞা যখন প্রোগ্রামে ব্যবহার করা হয়, তখন অ্যাসেম্বলার তার পুরো কোড স্থাপন করে। ম্যাক্রো প্রোগ্রামিংয়ে কোড পুনঃব্যবহার, সংক্ষিপ্ততা, এবং গঠন বাড়াতে সাহায্য করে, তবে অনেক ব্যবহার কোড সাইজ বড় করতে পারে এবং ডিবাগিং কিছুটা জটিল হতে পারে।
Read more